package com.kingyun.gpsinspection.purificationservice.dao.mapper.jsm;


import com.kingyun.gpsinspection.purificationservice.facade.model.BootstrapSearchBean;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Employee;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.EmployeeVo;

import java.util.List;
import java.util.Map;

/**
 * 人员信息
 */
public interface EmployeeMapper {

    /**
     * @param employee 根据条件查询 人员信息 { 主要用于组织查询人 和 部门查询人信息 }
     */
    List<Employee> selectListEmploye(Employee employee);

    /**
     * 删除人员信息
     *
     * @param employeeId
     * @return
     */
    int deleteByPrimaryKey(String employeeId);

    /**
     * 新增人员信息
     *
     * @param record
     * @return
     */
    int insert(Employee record);

    /**
     * 新增人员信息
     *
     * @param record
     * @return
     */
    int insertSelective(Employee record);

    /**
     * 查询人员信息
     *
     * @param employeeId
     * @return
     */
    EmployeeVo selectByPrimaryKey(String employeeId);

    /**
     * 修改人员信息
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(Employee record);

    /**
     * 修改人员信息
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(Employee record);

    /**
     * 查询人员信息
     *
     * @param employee
     * @return
     */
    List<EmployeeVo> selectEmployeeList(Employee employee);

    /**
     * 分页查询人员信息
     *
     * @param bootstrapSearchBean
     * @return
     */
    List<EmployeeVo> queryList(BootstrapSearchBean bootstrapSearchBean);

    /**
     * 查询人员信息返回条数
     *
     * @param bootstrapSearchBean
     * @return
     */
    Integer queryCount(BootstrapSearchBean bootstrapSearchBean);

    /**
     * 修改人员信息
     *
     * @param employee
     * @return
     */
    int updateEemployee(Map employee);

    /**
     * 查询人员信息
     *
     * @param bootstrapSearchBean
     * @return
     */
    List<EmployeeVo> findList(BootstrapSearchBean bootstrapSearchBean);

    List<EmployeeVo> queryEmployeeByRoleDept(Map selectMap);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量插入
     * @Date 2017/2/8 17:18
     */
    int insertList(List<Employee> list);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量修改
     * @Date 2017/2/8 17:18
     */
    int updateList(List<Employee> list);

    /**
     * @param list
     * @Author 卢曼成
     * @Description 批量逻辑删除
     * @Date 2017/2/8 17:18
     */
    int deleteList(List<Employee> list);

    /**
     * @param employeeId
     * @return Employee
     * @Author 卢曼成
     * @Description 根据ID查询
     * @CreateDateTime 2017/3/15 14:53
     **/
    Employee queryByKeyId(String employeeId);

    /**
     * @param list
     * @return List<String>
     * @Author 卢曼成
     * @Description 根据ID查询数据是否存在
     */
    List<String> selectByListId(List<Employee> list);

    /**
     * @param list
     * @return List<String>
     * @Author 卢曼成
     * @Description 根据postId获取关联的用户数量
     */
    int selectByPostCount(List<String> list);

    /**
     * @param employee
     * @return int
     * @Author 卢曼成
     * @Description 验证邮箱是否重复
     */
    int isExis(Employee employee);

    /**
     * 根据组织id查询人员id
     * @param orgIds
     * @return
     */
    List<Employee> queryEmpIdByOrgIds(String[] orgIds);

    List<Employee> selectBelongToSchedulingRoom(EmployeeVo employeeVo);

}